package com.hiss.basic.client.system;

import com.hiss.basic.model.system.domain.SysUserDomain;
import com.hiss.basic.model.system.request.*;
import com.hiss.basic.model.system.response.SysUserQueryResponse;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;

import java.util.List;

/**
 * 系统用户 service
 */
public interface ISysUserService extends IService<SysUserDomain> {

    SysUserDomain findByUsername(String username);

    List<SysUserQueryResponse> findList(SysUserQueryRequest request);

    Page<SysUserQueryResponse> findPageList(SysUserQueryRequest request);

    void create(SysUserCreateRequest request);

    void update(SysUserUpdateRequest request);

    void updateBasic(SysUserBasicUpdateRequest request);

    void updatePassword(SysUserPasswordUpdateRequest request);

    void resetPassword(Long userId);

    void remove(Long userId);
}
